import axios from "axios"
import { MessageBox, Message } from "element-ui";

const instance = axios.create({
  // baseURL: 'https://lianghj.top:8888/api/private/v1/',
  baseURL:'http://47.108.251.106:8881/api/private/v1/',

});

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么

  //给请求头统一添加token

  console.log(config, 11)

  let token = localStorage.getItem("token")
  if (token) {
    config.headers.Authorization = token
  }
  return config



}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  //如何处理token过期问题？1.需要后台响应值告诉你，
  //一般后台会自定义状态码40004，或者返回无效token,token过期等
  //2.提示用登录过期，返回登陆页面

  let code = response.data.meta.status
  let msg = response.data.meta.msg


  // let {data,meta:{msg,status}}=res.data //也可以解构下
  // 处理无效的token
  if (msg == "无效token") {
    MessageBox.confirm("token过期是否跳转登录页?", '提示', {
      confirmButtonText: '确定',
      cancelButtonText: '取消',
      type: 'success',
    }).then(() => {
      location.href = "/login"
    }).catch(() => {

    })

  } else if (code == 400 || code == 401 || code == 403 || code == 404 || code == 500) {
    Message.error({
      duration: 1000,
      message: msg
    })
  }
  return response.data;
}, function (error) {
  //处理接口储物请求，响应错误一般都是网络问题，进行处理
  let { message } = error
  console.log(53, message, '222222222222')

  if (message == "Network Error") {
    message = "后台端口连接Network异常"
  }

  if (message.includes('timeout')) {
    message = "系统接口请求超时"
  }

  Message.error({
    duration: 1000,
    message: message
  })

  // 对响应错误做点什么
  return Promise.reject(error);
});

export default instance